﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using iLangl.Security;
using iLangl.Transport.Communication;
using iLangl.StateMachine;
using iLangl.Model;

namespace iLangl
{
	public class BaseFacade : IFacade
	{

		#region IFacade Members
		private IAuthenticationService _authenticationService;
		public IAuthenticationService AuthenticationService
		{
			get
			{
				return _authenticationService;
			}
			set
			{
				_authenticationService = value;
			}
		}


		private IActionManager _actionManager;
		public IActionManager ActionManager
		{
			get
			{
				return _actionManager;
			}
			set
			{
				_actionManager = value;
			}
		}

		private ICommunicationManager _communicationManager;
		public ICommunicationManager CommunicationManager
		{
			get
			{
				return _communicationManager;
			}
			set
			{
				_communicationManager = value;
			}
		}

		private IPackageManager _packageManager;
		public IPackageManager PackageManager
		{
			get
			{
				return _packageManager;
			}
			set
			{
				_packageManager = value;
				_packageManager.ManagerFacade = this;
			}
		}


		private IStateMachine _stateMachine;
		public IStateMachine StateMachine
		{
			get
			{
				return _stateMachine;
			}
			set
			{
				_stateMachine = value;
				_stateMachine.ManagerFacade = this;
			}
		}

		IModelFactory _modelFactory = null;
		public IModelFactory ModelFactory
		{
			get
			{
				return _modelFactory;
			}
			set
			{
				_modelFactory = value;
			}
		}


		IAlertManager _alertManager = null;
		public IAlertManager AlertManager
		{
			get
			{
				return _alertManager;
			}
			set
			{
				_alertManager = value;
			}
		}

		#endregion
	}
}
